﻿//////////////////////////////////////////////////////////////////////////////
//
//  Copyright © 1998-2024 Glodon Company Limited.  All rights reserved.
//
//  Use of this software is subject to the terms of the Glodon license
//  agreement provided at the time of installation or download, or which
//  otherwise accompanies this software in either electronic or hard copy form.  
//
//////////////////////////////////////////////////////////////////////////////


#pragma once
#include <stdint.h>
#include "NdbDataSchema.h"

namespace gcmp {

    /// \brief GRep渲染层次类型
    ///
    ///  Model层内按正常深度排序
    ///  除了 TransientObjectInTop的其他层，按照枚举值覆盖，同一层顺序未定义（先画面再画线）
    ///  场景分两批分开渲染，其它和TransientObjectInTop
    ///  TransientObjectInTop 建议放置频繁变化的小对象，以便提高刷新效率。（如框选框）
    ///  TransientObjectInTop 可覆盖非自身预高亮
    SERIALIZABLE_ENUM_CLASS(GraphicsRenderLayer)
    {
        Unknown = -1,             ///< 未知类型
        Model = 0,                ///< 模型实体，例如构件、族特征体、灰显模型实体、模型线(优先级最高，越高越先画)
        DrawingLine = 7,          ///< 二维线（族）
        WorkPlane = 3,            ///< 工作平面
        Annotation = 1,           ///< 标注，例如尺寸标注、文字标注、剖立面标记（待定）
        ReferenceObject = 4,      ///< 定位构件，例如参照平面、参照线、标高线、轴网、族坐标系
        SketchObject = 2,         ///< 草图对象，例如草图线、轴线
        ProfileCurve = 8,         ///< 项目轮廓线
        DimensionConstraint = 5,  ///< 尺寸约束，例如距离约束、角度约束、直径约束、半径约束
        TransientObject = 6,      ///< 临时对象，例如创建构件时的预览对象、编辑构件时的辅助对象、移动构件时的Shadow、几何约束
        TransientObjectInTop = 9, ///< 置于顶层的临时对象
        GISData = 10              ///< GIS数据，如：倾斜摄影数据
    };

}// namespace gcmp
